草庐IT

c++ - python sys.stdout 和 C++ iostreams::cout

全部标签

c++ - 如何让 boost::iostream 以类似于 std::ios::binary 的模式运行?

我有以下关于boost::iostreams的问题。如果有人熟悉编写过滤器,我将非常感谢您的建议/帮助。我正在编写一对多字符过滤器,它们与boost::iostream::filtering_stream一起用作数据压缩器和解压缩器。我从编写压缩器开始,从lz系列中学习了一些算法,现在正在研究解压缩器。简而言之,我的压缩器将数据拆分为数据包,这些数据包分别编码,然后刷新到我的文件中。当我必须从我的文件中恢复数据时(在编程术语中,接收一个read(byte_count)请求),我必须读取一个完整打包block,缓冲它,解压它,然后才给出请求的字节数。我已经实现了这个逻辑,但现在我正在努力

c++ - 从重定向的 STDOUT 读取 Unicode(C++、Win32 API、Qt)

我有一个动态加载插件DLL的C++应用程序。DLL通过std::cout和std::wcout发送文本输出。基于Qt的UI必须抓取DLL的所有文本输出并显示它。由于运行时库的差异,DLL可能具有不同的cout/wcout实例,因此使用流缓冲区替换的方法并不完全有效。因此,我应用了Windows特定的STDOUT重定向,如下所示:StreamReader::StreamReader(QObject*parent):QThread(parent){//void}voidStreamReader::cleanUp(){//restorestdoutSetStdHandle(STD_OUTPU

c++ - iostream header 与 iostream 类

如果有一个文件foo.cpp,那么它通常有一个关联的头文件foo.h,其中包含foo.cpp中定义的函数的所有声明。这样,所有其他使用foo.cpp中的函数的文件都可以只包含foo.h文件并使用它们。以上就是我对头文件的简单理解。但是,我没有看到iostream头文件和iostream类之间存在这种关系。iostream头文件只声明了几个外部变量,但它们似乎都与iostream类没有直接关系。iostream类似乎也没有声明任何新函数。为什么我们会有iostream类和iostream头文件?如果我听起来很困惑,我深表歉意,但这件事真的让我很困惑。 最佳答案

c++ - 使用 iostream 消失的段错误

所以这很粗糙。我有一段使用ColumbiaPhysicsSystemc++库的代码。当我运行它时出现段错误,很可能是因为类:CgArg和vectorf_field_in等未初始化。我使用了Valgrind,发现确实各种参数都指向无效内存。奇怪的是,如果我在这两个函数的任何地方插入一个iostream调用,段错误就会消失。当我把标志放在调试的地方时,我发现了。如果我定义一个整数并编写一个简单的cin>>,它也不会出现段错误。这就是为什么我认为它与iostream有关。如果您知道为什么调用iostream会以某种方式为参数提供代码片段,请与我分享,我将不胜感激。#includeusingn

c++ - 为什么 << 运算符会用 cout 截断字符?

我在while循环中使用std::getline并使用cout打印输出,我发现打印时我的行的开头被截断了:按预期工作:std::stringline;while(std::getline(csv,line)){std::cout没有按预期工作,从我的行中删除了前两个字符std::stringline;while(std::getline(csv,line)){std::cout我以前从未注意到这种行为,为什么现在会发生这种情况? 最佳答案 这似乎是正在发生的事情:行字符串末尾的字符包含回车字符。如果您的字符串是HelloWorld,

C++。为什么 std::cout << char + int 打印 int 值?

比方说,我们有:charx='a';inty=1;所以,如果你运行:std::cout它打印98而不是'b'。正如我从here看到的那样只有int参数实现。从现在开始我有两个问题:char+int操作后返回什么类型?为什么没有char参数实现,而是std::cout仍然按预期工作并打印char值? 最佳答案 感谢Fefux,BoPersson和MattiVirkkunen答案是:来自CPPReference:Implicitconversions:arithmeticoperatorsdonotaccepttypessmallert

c++ 在同一行使用 cout 和 cin 的问题 (xcode8)

在C++中使用Xcode我正在尝试创建一个简单的控制台应用程序。然而,我对cout和cin的使用似乎并没有像我预期的那样工作。我期待:Testing:12inputwas12编辑:我已经尽可能地减少了代码测试:#includeintmain(intargc,constchar*argv[]){//insertcodehere...intnum;std::cout>num;std::cout示例输出:12Testing:inputwas12Programendedwithexitcode:0我在这里遗漏了什么吗? 最佳答案 显然是一个

c++ - boost iostream : how to turn ifstream into memory mapped file?

我想要的是简单地打开文件作为内存映射文件进行读取-以便将来以更快的速度访问它(例如:我们打开文件读取它结束,等待并一次又一次地读取它)同时我希望该文件可以被其他程序修改,当他们修改它时,我希望我的ifstream也能修改。如何使用boostiostreams(或boostinterprocess)做这样的事情?我们可以只是tallos-嘿,这个文件应该为所有应用程序进行内存映射?所以我尝试这样的代码:#include#include#includeusingnamespaceboost::iostreams;intmain(intargc,char**argv){streamout;t

C++ 生成器 : #include <iostream> error

我正在测试新版本的CBuilder(XE2版)。大多数commnoninclude被重定向到boost库或dinkumware库(一些STL实现?)。#ifndefError_H#defineError_H#include#include//Errormessage,seebellow,please但编译因以下(和奇怪的)消息而停止:[BCC32Error]xlocale(1392):E2451Undefinedsymbol'MB_LEN_MAX'[BCC32Error]xlocale(1763):[BCC32Error]xlocnum(1495):E2451Undefinedsymb

c++ - 将 std::cout 重定向到 QTextEdit

是否有可能(更重要的是-如何-)将输出流重定向到QTextBox。这样如果我写std::cout在应用程序的任何地方它都被重定向到我定义的文本框?我尝试了显而易见的(其中ui.textEdit是指向文本编辑框的指针):std::cout.rdbuf(ui.textEdit);std::cout但是这不起作用。(明显地)。-将cout重定向到qDebug也不起作用(甚至将qDebug重定向到文本字段)。顺便说一句,我正在使用qt4.8...编辑:所以我尝试了邮件列表中发布的解决方案。但是现在出现了访问冲突。classMainInterface:publicQMainWindow{Q_OB